package pattern.template_method;

public abstract class DayOffProcess {
    /**
     * @Author WLJ
     * @Description //TODO 请假模板
     * @Date 15:20 2023/3/8
     * @Param []
     * @return void
     **/
    public final void dayOffProcess() {
        // 领取申请表
        this.pickUpForm();
        // 填写申请信息
        this.writeInfo();
        // 签名
        this.signUp();
        // 提交到不同部门审批
        this.submit();
        // 行政部备案
        this.filing();
    }

    private void filing() {
        System.out.println("行政部备案");
    }
    protected abstract void submit();
    protected abstract void signUp();
    private void writeInfo() {
        System.out.println("填写申请信息");
    }
    private void pickUpForm() {
        System.out.println("领取申请表");
    }
}
